package commons.base.util;

import java.util.LinkedList;
import java.util.Queue;

/**
 * 实现一个固定长度的集合队列
 * @author yuan<cihang.yuan@happyelements.com>
 *
 */
public class LimitQueue<E> {

	/** 
     * 队列长度，实例化类的时候指定  
     */  
    private int limit;    
        
    Queue<E> queue = new LinkedList<E>();    
        
    public LimitQueue(int limit){    
        this.limit = limit;    
    }    
        
    /** 
     * 入队 
     */  
    public boolean offer(E e){    
        if(queue.size() >= limit){    
            //如果超出长度,入队时,先出队    
            queue.poll();    
        }  
        return queue.offer(e);    
    }
    
    /** 
     * 获取队列  
     *  
     * @return 
     */  
    public Queue<E> getQueue(){    
        return queue;    
    }    
        
    /** 
     * 获取限制大小 
     *  
     * @return 
     */  
    public int getLimit(){    
        return limit;    
    }  
}
